package cn.edu.wynu.d4_jdk8_time;

/*
ZoneId 时区的常见方法
                方法名                                 说明
public static Set<String> getAvailableZoneIds() 获取Java中支持的所有时区
public static ZoneId systemDefault()            获取系统默认时区
public static ZoneId of(String ZoneId()         获取一个指定时区

ZonedDateTime带时区时间的常见方法
                方法名                                                             说明
public static ZonedDateTime now()                                      获取当前时区的ZonedDateTime对象
public static ZonedDateTime now(Zoneld zone)                           获取指定时区的ZonedDateTime对象
getYear、getMonthValue、getDayOfMonth、getDayOfYeargetDayOfWeek、       获取年月日、时分秒、纳秒等
getHour、getMinute、getSecond、getNano
public ZonedDateTime withXxx(时间)                                      修改时间系列的方法
public ZonedDateTime minusXxx(时间)                                     减少时间系列的方法
public ZonedDateTime plusXxx(时间)                                      增加时间系列的方法
*/

import java.time.Clock;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class Test4_ZoneId_ZonedDateTime {
    public static void main(String[] args) {
        // 目标：了解时区和带时区的时间。
        // 1、ZoneId的常见方法：
        // public static ZoneId systemDefault(): 获取系统默认的时区
        ZoneId zoneId = ZoneId.systemDefault();
        System.out.println(zoneId.getId());
        System.out.println(zoneId);

        // public static Set<String> getAvailableZoneIds(): 获取Java支持的全部时区Id
        System.out.println(ZoneId.getAvailableZoneIds());

        // public static ZoneId of(String zoneId) : 把某个时区id封装成ZoneId对象。
        ZoneId zoneId1 = ZoneId.of("America/New_York");

        // 2、ZonedDateTime：带时区的时间。
        // public static ZonedDateTime now(ZoneId zone): 获取某个时区的ZonedDateTime对象。
        ZonedDateTime now = ZonedDateTime.now(zoneId1);
        System.out.println(now);

        // 世界标准时间
        ZonedDateTime now1 = ZonedDateTime.now(Clock.systemUTC());
        System.out.println(now1);

        // public static ZonedDateTime now()：获取系统默认时区的ZonedDateTime对象
        ZonedDateTime now2 = ZonedDateTime.now();
        System.out.println(now2);

        // Calendar instance = Calendar.getInstance(TimeZone.getTimeZone(zoneId1));
    }
}
